Types of Software Testing
Software testing is the process of evaluating a software application to verify that it behaves according to its requirements and to identify defects, unexpected behavior, usability problems, performance issues, security weaknesses, and other quality-related risks.
Software testing can be classified in different ways based on the testing objective, execution method, level of testing, scope, and whether the testing is performed manually or with automation tools. Understanding these testing types is an important foundation for learning Selenium and professional software testing.
In Selenium-based automation, testers commonly automate suitable web application scenarios such as functional testing, regression testing, smoke testing, cross-browser testing, data-driven testing, and end-to-end workflows. Other testing activities, such as exploratory, usability, and certain visual evaluations, may continue to require significant human involvement.
Learners can explore the JustAcademy Selenium Automation Testing Course to continue learning software testing and Selenium automation.
1. What is Software Testing?
Software testing is the systematic process of checking an application or software system to determine whether it satisfies specified requirements and behaves as expected.
Testing involves designing test scenarios, preparing test data, executing tests, comparing actual results with expected results, identifying defects, and communicating test results to the development and project teams.
Simple Definition
Software testing means evaluating software to find defects and verify that the application works according to its expected requirements.
Example
Suppose an application has a login page. A tester may verify:
- Valid username and password.
- Invalid username and password.
- Empty username.
- Empty password.
- Password masking.
- Login button behavior.
- Error messages.
- Forgot-password functionality.
- Account lock behavior.
- Navigation after successful login.
2. Why Are There Different Types of Software Testing?
A software application contains many different components and quality requirements. A single testing approach cannot effectively evaluate every aspect of an application.
For example, functional testing checks whether features work correctly, while performance testing evaluates system behavior under different workloads. Security testing focuses on security risks, usability testing evaluates user experience, and compatibility testing checks behavior across different environments.
Testing Classification
Software Testing
|
+-------------------------+
| |
Testing Approach Testing Objective
| |
+---- Manual +---- Functional
+---- Automation +---- Non-Functional
|
|
Testing Level
|
+---- Unit
+---- Integration
+---- System
+---- Acceptance
3. Major Categories of Software Testing
Software testing can be broadly organized into several categories.
| Category |
Examples |
| Testing by Execution |
Manual Testing, Automation Testing |
| Testing by Objective |
Functional Testing, Non-Functional Testing |
| Functional Testing Types |
Unit, Integration, System, Acceptance, Regression, Smoke, Sanity |
| Non-Functional Testing Types |
Performance, Load, Stress, Security, Usability, Compatibility, Accessibility |
| Testing Based on Change |
Regression Testing, Retesting |
| Testing Based on Knowledge |
Black Box, White Box, Grey Box |
| Testing Based on Execution Style |
Exploratory, Ad-Hoc, Scripted Testing |
4. Manual Testing
Manual testing is testing performed by a human tester without using automation scripts to execute the complete test scenario.
The tester interacts directly with the application, enters test data, performs actions, observes results, compares actual results with expected results, and records the outcome.
Example
- Open the browser.
- Open the application.
- Navigate to the login page.
- Enter username.
- Enter password.
- Click Login.
- Verify the dashboard.
Common Uses
- Exploratory testing
- Usability testing
- Ad-hoc testing
- Visual evaluation
- New feature testing
- Scenarios requiring human judgment
5. Automation Testing
Automation testing uses software tools, frameworks, and scripts to execute predefined test scenarios.
Automation can perform actions such as opening a browser, entering data, clicking elements, navigating through pages, validating results, and generating test reports.
Example
WebDriver driver = new ChromeDriver();
driver.get("https://example.com/login");
driver.findElement(By.id("username"))
.sendKeys("[email protected]");
driver.findElement(By.id("password"))
.sendKeys("Test@123");
driver.findElement(By.id("loginButton"))
.click();
driver.quit();
Selenium WebDriver can be used to automate browser-based test scenarios like the example above.
6. Functional Testing
Functional testing verifies whether the application's features and functions behave according to specified requirements.
Examples
- Login functionality
- Registration functionality
- Search functionality
- Product filtering
- Shopping cart
- Checkout
- Password reset
- Form submission
- Navigation
Functional Testing Flow
Requirement
↓
Test Scenario
↓
Test Case
↓
Execute Test
↓
Compare Actual vs Expected
↓
Pass / Fail
7. Non-Functional Testing
Non-functional testing evaluates quality characteristics of a system rather than only checking whether a specific business function works.
Common Non-Functional Testing Types
- Performance Testing
- Load Testing
- Stress Testing
- Security Testing
- Usability Testing
- Compatibility Testing
- Accessibility Testing
- Reliability Testing
- Scalability Testing
8. Unit Testing
Unit testing tests small individual components of an application, such as functions, methods, or classes.
The purpose is to verify that a small unit of code behaves correctly in isolation or within a controlled environment.
Example
public int add(int a, int b) {
return a + b;
}
A unit test can verify that calling add(10, 20) returns 30.
Advantages
- Finds defects early.
- Tests small pieces of code.
- Helps developers identify problems quickly.
- Can be automated easily using appropriate testing frameworks.
9. Integration Testing
Integration testing verifies whether multiple modules or components work correctly when they interact with each other.
Example
Consider an e-commerce application:
Product Module
↓
Cart Module
↓
Payment Module
↓
Order Module
Integration testing verifies whether these components exchange information correctly.
Example Scenario
A product is added to the cart. The cart sends the correct product and price information to checkout. The payment module processes the transaction, and the order module creates the expected order.
10. System Testing
System testing evaluates the complete integrated application as a whole.
The objective is to verify whether the complete system behaves according to its specified requirements.
Example
For an e-commerce application, system testing may cover:
- User registration
- Login
- Product search
- Product selection
- Cart
- Checkout
- Payment
- Order confirmation
- Order history
11. Acceptance Testing
Acceptance testing verifies whether the software satisfies business and user requirements and is suitable for its intended use.
Acceptance testing is often associated with business stakeholders, customers, product owners, or designated acceptance testers.
Example
A business may specify that a customer must be able to search for a product, add it to the cart, complete checkout, and receive an order confirmation.
Acceptance testing checks whether the application satisfies these expected business workflows.
12. User Acceptance Testing
User Acceptance Testing (UAT) is performed to determine whether the system meets the needs of its intended users and business processes.
Example
Before launching a banking application feature, selected business users may validate important workflows such as account access, transaction history, and fund-transfer processes.
UAT Flow
Business Requirement
↓
Business Scenario
↓
User Acceptance Test
↓
Execute Workflow
↓
Validate Business Result
↓
Acceptance Decision
13. Smoke Testing
Smoke testing is a relatively broad but shallow set of checks used to determine whether a build is stable enough for more detailed testing.
Example
For an e-commerce application, smoke tests may check:
- Application opens successfully.
- Login works.
- Product search works.
- Product page opens.
- Product can be added to cart.
- Checkout page opens.
If critical functionality is completely unavailable, the build may not be suitable for deeper testing.
14. Sanity Testing
Sanity testing is focused testing performed after specific changes or fixes to verify that the affected functionality works as expected and that the change has not introduced obvious related problems.
Example
Suppose a login defect was fixed. A sanity test may focus on:
- Valid login
- Invalid login
- Login error message
- Password field
- Login button
15. Smoke Testing vs Sanity Testing
| Parameter |
Smoke Testing |
Sanity Testing |
| Purpose |
Check whether the build is broadly stable for further testing |
Verify specific changed or affected functionality |
| Scope |
Broad and relatively shallow |
Narrow and focused |
| Execution |
Often performed on a new build |
Often performed after a specific change or fix |
| Focus |
Critical application functionality |
Specific functionality and related areas |
16. Regression Testing
Regression testing verifies that existing functionality continues to work after application changes.
Changes may include new features, bug fixes, configuration changes, dependency updates, or other modifications.
Example
Suppose a developer changes the checkout module. Regression testing may verify:
- Login
- Search
- Product selection
- Cart
- Checkout
- Order confirmation
Why Automation is Useful
Regression suites can contain many repetitive test cases. Suitable regression tests can therefore be automated and executed repeatedly.
17. Retesting
Retesting means executing a failed test again after the reported defect has been fixed to determine whether the specific issue has been resolved.
Example
Test Case
↓
Test Fails
↓
Defect Reported
↓
Developer Fixes Defect
↓
Retest
↓
Pass / Fail
Retesting vs Regression Testing
| Retesting |
Regression Testing |
| Focuses on verifying a specific defect fix. |
Checks whether existing functionality remains unaffected by changes. |
| Usually targets previously failed scenarios. |
Can cover a broader existing test suite. |
| Confirms whether the reported defect has been fixed. |
Checks for unintended side effects. |
18. Exploratory Testing
Exploratory testing involves learning about the application, designing tests, executing actions, and investigating results dynamically.
Unlike strictly scripted testing, exploratory testing allows the tester to adapt based on observations.
Example
A tester opens a shopping application and explores different combinations of:
- Search terms
- Filters
- Sorting
- Product variations
- Cart quantities
- Navigation paths
The tester may discover unexpected behavior that was not explicitly described in predefined test cases.
19. Ad-Hoc Testing
Ad-hoc testing is informal testing performed without a detailed predefined test plan or structured test case set.
The tester uses experience and understanding of the application to investigate potential problems.
Example
A tester intentionally enters unusual combinations of characters, rapidly clicks buttons, navigates between pages, or changes input values to investigate unexpected behavior.
20. Black Box Testing
Black box testing tests software from the perspective of its external behavior without requiring knowledge of the internal implementation.
Focus
- Inputs
- Outputs
- Requirements
- User behavior
- Business functionality
Example
A tester enters valid and invalid login credentials and checks the resulting behavior without needing to inspect the application's source code.
21. White Box Testing
White box testing involves testing with knowledge of the application's internal code, logic, structure, or implementation.
Examples
- Testing individual methods.
- Testing conditional branches.
- Testing loops.
- Checking code paths.
- Evaluating code coverage.
White box testing is commonly associated with development-level testing and requires knowledge of the implementation.
22. Grey Box Testing
Grey box testing combines aspects of black box and white box testing. The tester has some knowledge of the internal system while primarily evaluating externally observable behavior.
Example
A tester may understand database structures or API behavior while testing the application through its user interface.
23. Performance Testing
Performance testing evaluates how an application behaves in terms of response time, throughput, resource utilization, stability, and other performance characteristics.
Common Performance Questions
- How quickly does the application respond?
- How many requests can the system process?
- How does performance change as traffic increases?
- Does the application remain stable over time?
24. Load Testing
Load testing evaluates application behavior under an expected or specified workload.
Example
An application normally expects thousands of concurrent users. Load testing can be performed to evaluate how the application behaves under a representative workload.
Load Testing Flow
Expected User Load
↓
Generate Requests
↓
Monitor System
↓
Measure Response Time
↓
Analyze Throughput
↓
Identify Bottlenecks
25. Stress Testing
Stress testing evaluates application behavior beyond normal or expected operating conditions to understand how the system behaves under extreme load.
Example
A system designed for a certain number of concurrent users may be tested with progressively increasing traffic to identify performance limits, degradation, or failure behavior.
26. Volume Testing
Volume testing evaluates how an application behaves when processing large amounts of data.
Example
A reporting system may be tested using a database containing millions of records to evaluate query response times and system behavior.
27. Security Testing
Security testing evaluates an application's ability to protect data and functionality against unauthorized access and other security risks.
Common Security Testing Areas
- Authentication
- Authorization
- Session management
- Access control
- Input validation
- Data protection
- Secure communication
Example
A tester verifies that a normal user cannot access administrative functionality without the required permissions.
28. Usability Testing
Usability testing evaluates how easily and effectively users can interact with an application.
Common Areas
- Navigation
- Readability
- Form usability
- Error messages
- Workflow clarity
- User interaction
- Overall ease of use
Usability testing generally benefits from human observation and feedback.
29. Compatibility Testing
Compatibility testing verifies whether an application behaves correctly across different environments.
Compatibility Areas
- Web browsers
- Operating systems
- Devices
- Screen sizes
- Browser versions
- Network environments
Example
A web application may be tested across Chrome, Firefox, Edge, and other supported browsers.
30. Cross-Browser Testing
Cross-browser testing verifies that a web application behaves correctly across supported browsers and browser configurations.
Example
Web Application
|
+---- Chrome
|
+---- Firefox
|
+---- Edge
|
+---- Safari
|
+---- Other Supported Browsers
Selenium WebDriver is commonly used to automate suitable cross-browser web application scenarios.
31. Accessibility Testing
Accessibility testing evaluates whether software can be used effectively by people with different accessibility needs.
Common Areas
- Keyboard navigation
- Screen-reader compatibility
- Text readability
- Color contrast
- Form labels
- Alternative text
- Focus management
Accessibility testing may combine automated checks with manual evaluation.
32. End-to-End Testing
End-to-end testing verifies a complete business workflow from beginning to end.
E-Commerce Example
Open Website
↓
Register / Login
↓
Search Product
↓
Open Product
↓
Add to Cart
↓
Checkout
↓
Payment
↓
Order Confirmation
An end-to-end test validates that the complete workflow functions correctly across the involved components.
33. Positive Testing
Positive testing verifies that the application behaves correctly when valid and expected inputs are provided.
Example
For a login form:
- Enter a valid username.
- Enter a valid password.
- Click Login.
- Verify successful login.
34. Negative Testing
Negative testing verifies how an application behaves when invalid, unexpected, incomplete, or incorrect inputs are provided.
Example
- Invalid username
- Invalid password
- Empty username
- Empty password
- Invalid email format
- Unexpected characters
- Excessively long input
The objective is to verify that the application handles invalid conditions appropriately.
35. Data-Driven Testing
Data-driven testing executes the same test logic with multiple sets of test data.
Example
Test Data
Username Password
---------------------------------------
[email protected] Test@123
[email protected] Test@456
[email protected] Test@789
The same login test can be executed using multiple data sets.
Benefits
- Reduces duplication.
- Improves test coverage.
- Supports multiple input combinations.
- Works well with automation frameworks.
36. Keyword-Driven Testing
Keyword-driven testing uses predefined keywords to represent test actions.
Example
| Keyword |
Action |
| OPEN |
Open browser or application |
| INPUT |
Enter data |
| CLICK |
Click an element |
| VERIFY |
Validate expected result |
| CLOSE |
Close browser |
37. Scripted Testing
Scripted testing follows predefined test cases and instructions.
The tester executes documented steps and compares actual results with expected results.
Example
1. Open login page.
2. Enter valid username.
3. Enter valid password.
4. Click Login.
5. Verify dashboard.
6. Record result.
38. Static Testing
Static testing evaluates software artifacts without executing the application.
Examples
- Requirement reviews
- Design reviews
- Code reviews
- Documentation reviews
- Static code analysis
The objective is to identify issues early in the development lifecycle.
39. Dynamic Testing
Dynamic testing involves executing the software and evaluating its behavior.
Example
Opening a web application, entering login credentials, clicking buttons, and validating the resulting page are examples of dynamic testing.
40. Alpha Testing
Alpha testing is testing performed in a controlled environment before the software is released to a broader external user group.
It is generally performed near the end of development and before beta testing or broader release activities.
41. Beta Testing
Beta testing involves releasing software to a selected group of external users so that the software can be evaluated in realistic usage environments.
Example
A company may provide a pre-release version of an application to selected customers and collect feedback about defects, usability, and real-world behavior.
42. Installation Testing
Installation testing verifies whether software can be installed, configured, upgraded, and removed correctly in supported environments.
Examples
- Fresh installation
- Upgrade installation
- Configuration validation
- Uninstallation
- Installation failure handling
43. Recovery Testing
Recovery testing evaluates whether a system can recover correctly after failures or unexpected interruptions.
Examples
- Application crash
- Network interruption
- Server failure
- Database failure
- Unexpected system restart
The objective is to determine whether the application can restore functionality and data appropriately.
44. Reliability Testing
Reliability testing evaluates whether software can perform consistently over a specified period and under expected conditions.
Example
An application may be operated continuously for an extended period while monitoring failures, errors, and system behavior.
45. Scalability Testing
Scalability testing evaluates how effectively an application handles increasing workload, users, transactions, or data.
Example
1,000 Users
↓
5,000 Users
↓
10,000 Users
↓
50,000 Users
↓
Measure System Behavior
The objective is to understand how the application behaves as demand increases.
46. Localization Testing
Localization testing verifies that an application works correctly for a particular language, region, or locale.
Examples
- Language translation
- Date formats
- Time formats
- Currency formats
- Number formats
- Localized content
47. Internationalization Testing
Internationalization testing evaluates whether an application is designed to support multiple languages, regions, character sets, and cultural conventions without requiring major code changes for each locale.
Localization focuses on adapting the application to a particular locale, while internationalization focuses on preparing the software to support multiple locales.
48. Configuration Testing
Configuration testing verifies application behavior under different supported configurations.
Examples
- Different operating systems
- Different browsers
- Different browser versions
- Different hardware configurations
- Different application settings
- Different network configurations
49. Compliance Testing
Compliance testing evaluates whether an application follows applicable requirements, standards, policies, regulations, or organizational rules.
Examples
- Industry standards
- Organizational security policies
- Accessibility requirements
- Data handling requirements
- Regulatory requirements
50. API Testing
API testing validates application programming interfaces directly rather than testing only through the user interface.
API Testing Areas
- HTTP methods
- Status codes
- Request parameters
- Request headers
- Response body
- Authentication
- Response time
- Error handling
Example
Client
↓
API Request
↓
Server
↓
API Response
↓
Validate Status / Data
↓
Pass / Fail
51. Database Testing
Database testing verifies that data is stored, retrieved, updated, and maintained correctly.
Common Checks
- Data insertion
- Data updates
- Data deletion
- Data retrieval
- Data integrity
- Relationships
- Constraints
52. UI Testing
UI testing evaluates the application's user interface and verifies that interface elements behave as expected.
Examples
- Buttons
- Text fields
- Menus
- Links
- Forms
- Navigation
- Messages
Selenium WebDriver is commonly used to automate suitable web UI testing scenarios.
53. Regression Testing vs Retesting
| Parameter |
Regression Testing |
Retesting |
| Purpose |
Check existing functionality after changes |
Verify a specific defect fix |
| Scope |
Can be broad |
Usually focused |
| Target |
Existing functionality potentially affected by changes |
Previously failed test case |
| Automation |
Frequently suitable for automation |
Can also be automated where appropriate |
54. Functional vs Non-Functional Testing
| Functional Testing |
Non-Functional Testing |
| Checks what the system does. |
Checks how well the system performs. |
| Focuses on business functionality. |
Focuses on quality characteristics. |
| Examples include login and checkout. |
Examples include performance and usability. |
| Validates functional requirements. |
Validates non-functional quality requirements. |
55. Testing Levels
Testing can also be classified according to the level at which the software is tested.
Testing Levels
Unit Testing
↓
Integration Testing
↓
System Testing
↓
Acceptance Testing
Unit Testing
Tests individual units or components.
Integration Testing
Tests interactions between components.
System Testing
Tests the complete integrated system.
Acceptance Testing
Tests whether the system satisfies business and user requirements.
56. Testing Pyramid
The testing pyramid is a conceptual model for organizing different levels of automated tests.
/\
/ \
/ UI \
/------\
/Service \
/----------\
/ Unit \
/--------------\
A typical testing strategy contains many lower-level tests and fewer expensive end-to-end UI tests, although the exact balance depends on the application and project requirements.
57. Selenium and Types of Testing
Selenium is primarily relevant to browser-based web application automation.
Common Selenium Use Cases
- Functional web testing
- Regression testing
- Smoke testing
- Sanity testing
- End-to-end testing
- Cross-browser testing
- Data-driven testing
- Automated UI testing
Selenium Testing Flow
Test Scenario
↓
Test Case
↓
Selenium WebDriver
↓
Browser
↓
Web Application
↓
Web Element Interaction
↓
Assertion
↓
Test Result
58. Types of Testing Commonly Automated with Selenium
| Testing Type |
Selenium Usage |
| Functional Testing |
Automate web application functionality |
| Regression Testing |
Repeatedly execute stable web test cases |
| Smoke Testing |
Automate critical application checks |
| Sanity Testing |
Automate focused checks where appropriate |
| End-to-End Testing |
Automate complete browser workflows |
| Cross-Browser Testing |
Execute tests across supported browsers |
| Data-Driven Testing |
Execute the same workflow with multiple data sets |
59. Types of Testing That May Require More Human Involvement
Automation can assist many testing activities, but certain areas depend heavily on human observation, interpretation, or judgment.
- Exploratory testing
- Usability testing
- Subjective visual evaluation
- Ad-hoc investigation
- Some accessibility evaluations
- Business acceptance activities
- Testing of rapidly changing functionality
60. Real-World Example: E-Commerce Application
Consider an e-commerce website containing registration, login, search, product pages, cart, checkout, payment, and order management.
| Feature |
Possible Testing Types |
| Login |
Functional, Negative, Regression, Security |
| Search |
Functional, UI, Performance, Regression |
| Cart |
Functional, Integration, Regression |
| Checkout |
Functional, Integration, End-to-End, Regression |
| Payment |
Functional, Security, Integration, End-to-End |
| Website UI |
UI, Usability, Compatibility, Accessibility |
61. Real-World Example: Banking Application
A banking application requires multiple testing approaches because it contains authentication, financial transactions, sensitive data, integrations, and business-critical workflows.
Possible Testing Types
- Functional Testing
- Security Testing
- Integration Testing
- Regression Testing
- Performance Testing
- Usability Testing
- Database Testing
- API Testing
- End-to-End Testing
- Acceptance Testing
62. Choosing the Appropriate Testing Type
The appropriate testing type depends on the objective of the test.
| Testing Requirement |
Relevant Testing Type |
| Verify a feature |
Functional Testing |
| Verify individual code unit |
Unit Testing |
| Verify module interaction |
Integration Testing |
| Verify complete application |
System Testing |
| Verify business acceptance |
Acceptance Testing |
| Verify changes did not break existing functionality |
Regression Testing |
| Verify a specific defect fix |
Retesting |
| Check basic build stability |
Smoke Testing |
| Check specific changed functionality |
Sanity Testing |
| Check response under load |
Performance / Load Testing |
| Check security controls |
Security Testing |
| Check user experience |
Usability Testing |
| Check multiple browsers |
Compatibility / Cross-Browser Testing |
63. Common Mistakes in Software Testing
- Testing only the happy path.
- Ignoring negative scenarios.
- Testing without understanding requirements.
- Using unrealistic test data.
- Not testing boundary conditions.
- Ignoring regression testing after important changes.
- Automating every test without evaluating suitability.
- Ignoring failed automation results.
- Using unstable automation locators.
- Not maintaining test cases.
- Not documenting defects clearly.
- Ignoring environment differences.
64. Best Practices for Software Testing
- Understand requirements before creating tests.
- Design positive and negative test scenarios.
- Prioritize important business workflows.
- Use realistic and controlled test data.
- Test boundary and exceptional conditions.
- Maintain clear test documentation.
- Perform regression testing after relevant changes.
- Automate stable and repetitive scenarios where appropriate.
- Use reliable automation architecture.
- Review and maintain automation scripts regularly.
- Analyze failed tests instead of ignoring them.
- Use appropriate testing tools for different testing objectives.
- Combine manual and automated testing where appropriate.
65. Practical Testing Exercise
Choose a demo web application and create a testing plan covering different testing types.
Part A: Functional Testing
- Identify five major features.
- Create positive test cases.
- Create negative test cases.
- Execute the tests.
- Record expected and actual results.
Part B: Regression Testing
- Select stable test cases.
- Automate suitable scenarios.
- Execute them after application changes.
- Analyze failures.
Part C: Selenium Automation
- Open the browser using Selenium WebDriver.
- Navigate to the application.
- Identify web elements.
- Perform user actions.
- Add assertions.
- Execute the test.
- Record the result.
Practice Flow
Application
↓
Identify Features
↓
Create Test Scenarios
↓
Select Testing Types
↓
Manual Execution
↓
Identify Automation Candidates
↓
Selenium Automation
↓
Regression Execution
↓
Analyze Results
66. Interview Questions
Q1. What is software testing?
Software testing is the process of evaluating software to verify that it meets requirements and behaves as expected.
Q2. What are the major types of software testing?
Common categories include functional testing, non-functional testing, manual testing, automation testing, unit testing, integration testing, system testing, acceptance testing, regression testing, smoke testing, sanity testing, performance testing, security testing, usability testing, and compatibility testing.
Q3. What is functional testing?
Functional testing verifies whether application features behave according to specified requirements.
Q4. What is non-functional testing?
Non-functional testing evaluates quality characteristics such as performance, usability, security, compatibility, reliability, and scalability.
Q5. What is regression testing?
Regression testing verifies that existing functionality continues to work after application changes.
Q6. What is retesting?
Retesting verifies whether a previously reported defect has been fixed successfully.
Q7. What is smoke testing?
Smoke testing performs a broad but relatively shallow set of checks to determine whether a build is stable enough for further testing.
Q8. What is sanity testing?
Sanity testing performs focused checks on specific functionality after relevant changes or fixes.
Q9. What is black box testing?
Black box testing evaluates external application behavior without requiring knowledge of the internal implementation.
Q10. What is white box testing?
White box testing involves testing with knowledge of internal code, logic, or structure.
Q11. What is exploratory testing?
Exploratory testing allows testers to dynamically investigate an application while learning about its behavior and adapting their tests based on observations.
Q12. What is performance testing?
Performance testing evaluates characteristics such as response time, throughput, resource utilization, and system behavior under workload.
Q13. What is load testing?
Load testing evaluates application behavior under an expected or specified workload.
Q14. What is stress testing?
Stress testing evaluates system behavior under extreme or beyond-normal workload conditions.
Q15. What is Selenium used for?
Selenium is primarily used to automate interactions with web applications through supported browsers.
Q16. Which testing types can Selenium automate?
Selenium can be used for suitable web-based functional, regression, smoke, sanity, end-to-end, cross-browser, and data-driven testing scenarios.
Q17. Can Selenium perform performance testing?
Selenium is primarily a browser automation tool rather than a dedicated performance-testing tool. Performance testing generally requires specialized tools and approaches.
Q18. Can Selenium replace manual testing?
No. Selenium can automate suitable browser interactions, but exploratory testing, usability evaluation, visual judgment, test design, analysis, and other activities may still require human involvement.
67. Key Points to Remember
- Software testing verifies application behavior against expected requirements.
- Testing can be classified according to objective, level, execution method, and scope.
- Functional testing checks application functionality.
- Non-functional testing evaluates quality characteristics.
- Unit testing focuses on individual components.
- Integration testing checks interaction between components.
- System testing evaluates the complete system.
- Acceptance testing verifies business and user requirements.
- Smoke testing checks broad build stability.
- Sanity testing focuses on specific changed functionality.
- Regression testing checks existing functionality after changes.
- Retesting verifies a specific defect fix.
- Exploratory testing allows dynamic investigation.
- Black box testing focuses on external behavior.
- White box testing uses knowledge of internal implementation.
- Performance testing evaluates system performance characteristics.
- Security testing evaluates protection against security risks.
- Usability testing evaluates ease of use.
- Compatibility testing evaluates behavior across supported environments.
- Selenium is primarily used for web browser automation.
- Not every type of testing should be automated with Selenium.
- Manual and automation testing can be combined in a complete testing strategy.
68. Summary
Software testing includes many different testing types because applications must be evaluated from multiple perspectives. Functional testing verifies what the application does, while non-functional testing evaluates characteristics such as performance, security, usability, compatibility, reliability, and scalability.
Testing can also be classified according to testing level, such as unit testing, integration testing, system testing, and acceptance testing. Other important approaches include smoke testing, sanity testing, regression testing, retesting, exploratory testing, black box testing, white box testing, positive testing, negative testing, and end-to-end testing.
Selenium is primarily useful for automating web application testing. It can be used for suitable functional, regression, smoke, sanity, end-to-end, cross-browser, and data-driven web testing scenarios. Human testers continue to play an important role in exploratory testing, usability testing, test design, analysis, and other activities requiring judgment.
69. Selenium Training Resources
Learners who want to continue learning Selenium and software testing can explore the JustAcademy Selenium Automation Testing Course.
JustAcademy Selenium Training Course
Register for Selenium Course Demo
70. Final Learning Outcome
After completing this topic, a learner should be able to explain the major types of software testing, differentiate functional and non-functional testing, understand testing levels, explain smoke and sanity testing, distinguish regression testing from retesting, understand black box and white box testing, identify performance and security testing concepts, explain exploratory and usability testing, and identify which web testing scenarios can be automated using Selenium.